package com.qf.service.impl;

import com.qf.constant.CacheConstants;
import com.qf.feign.CacheFeign;
import com.qf.model.StandardSubmit;
import com.qf.service.FilterChainService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

/**
 * 过滤器 之 黑名单
 * @author lixu
 */
@Service("black")
public class BlackFilterServiceImpl implements FilterChainService {


    @Autowired
    private CacheFeign cacheFeign;
    /**
     * 黑名单
     * **黑名单过滤 : **平台实现系统级的手机号黑名单控制，限制某些号码的消息的发送，对发送短信进行过滤.
     *
     * - 如果是黑名单就把发送日志存到Elasticsearch
     * - 如果同时是HTTP的发送方式就模拟出状态报告推送给客户
     * @param submit
     * @return
     */
    @Override
    public boolean strategy(StandardSubmit submit) {

        //平台实现系统级的手机号黑名单控制，限制某些号码的消息的发送，对发送短信进行过滤.
        //BLACK:13412345678
        String cacheKey = CacheConstants.CACHE_PREFIX_BLACK + submit.getDestMobile();
        String value = cacheFeign.get(cacheKey);
        if(StringUtils.isEmpty(value)){
            //不在黑名单中
            return true;
        }else{
            //是黑名单
            return false;
        }
    }
}
